Freeslot
SPR_ROPO
MT_ROLYPOLY
S_ROLYPOLY_LOOK_1
S_ROLYPOLY_LOOK_2
S_ROLYPOLY_LOOK_3
S_ROLYPOLY_LOOK_4
S_ROLYPOLY_FACE_TARGET
S_ROLYPOLY_HOP_1
S_ROLYPOLY_HOP_2
S_ROLYPOLY_HOP_3
S_ROLYPOLY_HOP_4
S_ROLYPOLY_DROPDASH_1
S_ROLYPOLY_DROPDASH_2
S_ROLYPOLY_FALLING_1
S_ROLYPOLY_FALLING_2
S_ROLYPOLY_FALLING_3
S_ROLYPOLY_FALLING_4
S_ROLYPOLY_ROLLING_1
S_ROLYPOLY_ROLLING_2
S_ROLYPOLY_ROLLING_3
S_ROLYPOLY_ROLLING_STOP
sfx_DDASH

Object MT_ROLYPOLY
#$Name "Roly-Poly"
#$Sprite ROPOA0
#$Category "Kirby Enemies"
MapThingNum = 935
Spawnstate = S_ROLYPOLY_LOOK_1
Seestate = S_ROLYPOLY_FACE_TARGET
SeeSound = sfx_KAHOP
AttackSound = sfx_DDASH
ActiveSound = sfx_KC52
DeathState = S_XPLD_FLICKY
DeathSound = sfx_pop
PainChance = 200
Mass = 100
SpawnHealth = 1
Speed = 30*FRACUNIT
Radius = 30*fracunit
Height = 30*fracunit
Flags = MF_Special|MF_Enemy|MF_Shootable|MF_SLIDEME|MF_RUNSPAWNFUNC

State S_ROLYPOLY_LOOK_1
SpriteName = ROPO
SpriteFrame = A
Action = A_Look
Duration = 3
Var1 = 1+(1000<<16)
Next = S_ROLYPOLY_LOOK_2

State S_ROLYPOLY_LOOK_2
SpriteName = ROPO
SpriteFrame = B
Action = A_Look
Duration = 6
Var1 = 1+(1000<<16)
Next = S_ROLYPOLY_LOOK_3

State S_ROLYPOLY_LOOK_3
SpriteName = ROPO
SpriteFrame = A
Action = A_Look
Duration = 3
Var1 = 1+(1000<<16)
Next = S_ROLYPOLY_LOOK_4

State S_ROLYPOLY_LOOK_4
SpriteName = ROPO
SpriteFrame = C
Action = A_Look
Duration = 6
Var1 = 1+(1000<<16)
Next = S_ROLYPOLY_LOOK_1

State S_ROLYPOLY_FACE_TARGET
SpriteName = ROPO
SpriteFrame = D
Action = A_FaceTarget
Duration = 0
Next = S_ROLYPOLY_HOP_1

State S_ROLYPOLY_HOP_1
SpriteName = ROPO
SpriteFrame = D
Action = A_BunnyHop
Var1 = 15
Var2 = 5
Duration = 15
Next = S_ROLYPOLY_HOP_2

State S_ROLYPOLY_HOP_2
SpriteName = ROPO
SpriteFrame = E
Action = A_SetObjectFlags
Var1 = MF_GrenadeBounce|MF_MISSILE|MF_PAIN
Var2 = 2
Duration = 0
Next = S_ROLYPOLY_HOP_3

State S_ROLYPOLY_HOP_3
SpriteName = ROPO
SpriteFrame = E
Action = A_Thrust
Var1 = 5
Duration = 2
Next = S_ROLYPOLY_DROPDASH_1

State S_ROLYPOLY_DROPDASH_1
SpriteName = ROPO
SpriteFrame = G
Action A_ZThrust
Var1 = -25
Var2 = (1<<16)|0
Duration = 1
Next = S_ROLYPOLY_DROPDASH_2

State S_ROLYPOLY_DROPDASH_2
SpriteName = ROPO
SpriteFrame = E
Action = A_PlayAttackSound
Duration = 0
Next = S_ROLYPOLY_FALLING_1

State S_ROLYPOLY_FALLING_1
Duration = 1
SPRITENAME = ROPO
SPRITEFRAME = G
NEXT = S_ROLYPOLY_FALLING_2
Action = A_Boss5CheckOnGround
Var1 = S_ROLYPOLY_ROLLING_1

State S_ROLYPOLY_FALLING_2
Duration = 1
SPRITENAME = ROPO
SPRITEFRAME = H
NEXT = S_ROLYPOLY_FALLING_3
Action = A_Boss5CheckOnGround
Var1 = S_ROLYPOLY_ROLLING_1

State S_ROLYPOLY_FALLING_3
Duration = 1
SPRITENAME = ROPO
SPRITEFRAME = I
NEXT = S_ROLYPOLY_FALLING_4
Action = A_Boss5CheckOnGround
Var1 = S_ROLYPOLY_ROLLING_1

State S_ROLYPOLY_FALLING_4
Duration = 1
SPRITENAME = ROPO
SPRITEFRAME = J
NEXT = S_ROLYPOLY_FALLING_1
Action = A_Boss5CheckOnGround
Var1 = S_ROLYPOLY_ROLLING_1

State S_ROLYPOLY_ROLLING_1
SpriteName = ROPO
SpriteFrame = G
Action = A_FaceTarget
Duration = 0
Next = S_ROLYPOLY_ROLLING_2

State S_ROLYPOLY_ROLLING_2
SpriteName = ROPO
SpriteFrame = G
Action = A_Thrust
Var1 = 7
Var2 = 1
Duration = 0
Next = S_ROLYPOLY_ROLLING_3

State S_ROLYPOLY_ROLLING_3
SpriteName = ROPO
SpriteFrame = G|FF_ANIMATE
Var1 = 3
Var2 = 2
Duration = 70
Next = S_ROLYPOLY_ROLLING_STOP

State S_ROLYPOLY_ROLLING_STOP
SpriteName = ROPO
SpriteFrame = A
Action = A_SetObjectFlags
Var1 = MF_GrenadeBounce|MF_MISSILE|MF_PAIN
Var2 = 1
Duration = 10
Next = S_ROLYPOLY_LOOK_1
